import $http from '@/utils/request.js'

export async function getUserProfile() {
	var isLogin = false
	uni.checkSession({
		success: (e)=>{ //session_key 未过期，并且在本生命周期一直有效
			isLogin = true
		}
	})
	console.log(isLogin);
	if (isLogin) {
		return { code: 200 }
	} else {
		// const [err, succ] = await uni.getUserProfile({
		// 	desc: '获取用户信息,进行登录操作'
		// }).catch(err => err)
		
		// if (err && err.errMsg == 'getUserProfile:fail auth deny') {
		// 	return '用户取消了登录授权！'
		// }
		const [err1, res] = await uni.login().catch(err => err1)
		console.log(err1,res);
		// console.log(err, succ, err1, res);
		
		// 判断是否 uni.login() 调用失败
		if (err1 || res.errMsg !== 'login:ok') {
			return '登录失败！'
		}
		
		const query = {
			code: res.code,
			// userName: succ.userInfo.nickName,
			// headImg: succ.userInfo.avatarUrl,
			// gender: succ.userInfo.gender,
			// provinceName: succ.userInfo.province,
			// cityName: succ.userInfo.city
		}
		console.log(query)
		// return false
		let data =await $http.httpRequest({
			url: '/users/wxlogin',
			methods: 'POST',
			headers: 'application/json',
			data: query
		});
		if(data.code==200){
			uni.setStorageSync("token",data.data.token);
			uni.setStorageSync("sessionKey",data.data.sessionKey);
			uni.setStorageSync("userId",data.data.userId);
		}
		return data;
	}
	// await uni.checkSession({
	// 	success: (e)=>{ //session_key 未过期，并且在本生命周期一直有效
	// 		console.log('s', { code: 200 });
	// 		return { code: 200 }
	// 	},
	// 	fail: async (e)=>{ // session_key 已经失效，需要重新执行登录流程
	// 		console.log('f');
			
	// 	}
	// })
}

// 重新登录
export async function relogin() {
	const [err, res] = await uni.login().catch(err => err1)
	// console.log(err,res);
	console.log(err, res);
	// 判断是否 uni.login() 调用失败
	if (err || res.errMsg !== 'login:ok') {
		return '登录失败！'
	}
	
	const query = {
		code: res.code
	}
	// return false
	let data =await $http.httpRequest({
		url: '/users/wxauth',
		methods: 'POST',
		headers: 'application/json',
		data: query
	});
	if(data.code==200){
		uni.setStorageSync("sessionKey",data.data.sessionKey);
	}
	return data;
}